webpack与babel关系与区别 您所在的位置:网站首页 babel two webpack与babel关系与区别

webpack与babel关系与区别

2023-04-01 09:22| 来源: 网络整理| 查看: 265

1、babel是一个JS编译器,用来将ES6/ES7等语法转换为ES5语法(浏览器不认识的语法编译成浏览器认识的语法),从而能够使代码在大部分浏览器中运行。但是babel转换语法时有一些新的api是不转化的,比如promise、Object.assign等,所以babel还提供了很多插件,如babel-polyfill。

.babelrc / babel.config.js

{ presets: [ [ '@babel/preset-env', { modules: false, // preset-env在转码的时候会把es6模块化的语法转成其它模块化的语法,但在项目中我们希望保留es6模块化的语法,所以 配置modules: false,,告诉babel不需要转成其它模块化的语法 targets: { chrome: '49', // 需要兼容的浏览器最低版本 }, }, ], '@babel/preset-react', '@babel/preset-typescript', ], } 2、webpack是一个打包工具,打包js、css、图片、html等,它可以分析整个项目的文件结构,确认文件之间的依赖,将文件合成、压缩、加入hash等,生成最终项目文件。webpack把所有文件当成模块,但是webpack内置默认的加载器是处理js的,如果要处理其他类型的文件则需要引入不同的loader加载器,用来转化其他文件进行编译打包。webpack通过使用babel-loader使用Babel

webpack.config.js (module.rules 允许你在 webpack 配置中指定多个 loader)

module.exports = { module: { rules: [ { test: /\.css$/, use: 'css-loader' }, { test: /\.ts$/, use: 'ts-loader' }, { test: /\.(t|j)sx?$/, exclude: { and: [/node_modules/] }, loader: require.resolve('babel-loader'), // 使用babel options: { // babel中的配置 presets: ['@babel/preset-env'], // ...babelConfig.presets, plugins: [], // ...babelConfig.plugins, // ... babelConfig.others }, }, ], }, }; 总结: webpack和babel通常配合起来使用 babel是js编译工具,能将es6或者一些特殊语法做一些转换,只做文件转义,不做文件整合。 webpack是一个打包工具,内置只能处理js,但是它可以加载很多的loader处理css,img,ts,vue等其他文件,最终输出js文件。 webpack通过使用babel-loader使用Babel

参考webpack,Babel,babel-loader的关系



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有